package com.whfc.fim.dao;

import com.whfc.fim.dto.FimPersonDTO;
import com.whfc.fim.dto.FimPersonSyncDTO;
import com.whfc.fim.entity.FimAlgPerson;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author : qzexing
* @version : 1.0
* @date : 2020-09-08 18:38
*/

public interface FimAlgPersonMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(FimAlgPerson record);

    int insertSelective(FimAlgPerson record);

    FimAlgPerson selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(FimAlgPerson record);

    int updateByPrimaryKey(FimAlgPerson record);

    /**
     * 获取人脸库列表
     *
     * @return
     */
    List<FimPersonSyncDTO> selectPersonListByDeptId(@Param("deptId") Integer deptId);

    /**
     * 查找人员列表
     *
     * @param deptId  deptId
     * @param keyword keyword
     * @return 人员列表
     */
    List<FimPersonDTO> selectPersonDTOList(@Param("deptId") Integer deptId, @Param("keyword") String keyword);

    /**
     * 根据身份证号查找人员
     *
     * @param deptId   组织机构ID
     * @param idCardNo 身份证号
     * @return FimAlgPerson
     */
    FimAlgPerson selectPersonByIdCardNo(@Param("deptId") Integer deptId, @Param("idCardNo") String idCardNo);

    /**
     * 根据手机号查找人员
     *
     * @param deptId 组织机构ID
     * @param phone  手机号
     * @return FimAlgPerson
     */
    FimAlgPerson selectPersonByPhone(@Param("deptId") Integer deptId, @Param("phone") String phone);

    /**
     * 修改人员删除标记为删除状态
     *
     * @param personId 人员ID
     */
    void logicDelPerson(@Param("personId") Integer personId);
}